<?php
/**
 * Classe que representa um Plano (Servico) da empresa no sistema, que o Cliente
 * precisa ter para ser valido.
 */
class Plano implements IObject {
    /**
     * @var MyDb
     */
    public $tMysqli;

    private $IDPlano;
    private $StNome;
    private $FoPreco;
    private $ItDesconto;
    private $TxDescricao;
    private $EnStatus;

    public function __construct($ArPlanosData, $tMysqli) {
        $this->tMysqli = $tMysqli;
        $this->IDPlano = $ArPlanosData['IDPlano'];
        $this->StNome = $ArPlanosData['StNome'];
        $this->FoPreco = $ArPlanosData['FoPreco'];
        $this->ItDesconto = $ArPlanosData['ItDesconto'];
        $this->TxDescricao = $ArPlanosData['TxDescricao'];
        $this->EnStatus = $ArPlanosData['EnStatus'];
    }

    public function getPrice() {
        return $this->FoPreco - MathUtils::percentage($this->FoPreco, $this->ItDesconto, 2);
    }

    public function isEnable() {
        return $this->EnStatus == 'ATIVADO';
    }

    public function getIDPlano() {
        return $this->IDPlano;
    }

    public function setIDPlano($IDPlano) {
        $this->IDPlano = $IDPlano;
    }

    public function getStNome() {
        return $this->StNome;
    }

    public function setStNome($StNome) {
        $this->StNome = $StNome;
    }

    public function getFoPreco() {
        return $this->FoPreco;
    }

    public function setFoPreco($FoPreco) {
        $this->FoPreco = $FoPreco;
    }

    public function getItDesconto() {
        return $this->ItDesconto;
    }

    public function setItDesconto($ItDesconto) {
        $this->ItDesconto = $ItDesconto;
    }

    public function getTxDescricao() {
        return $this->TxDescricao;
    }

    public function setTxDescricao($TxDescricao) {
        $this->TxDescricao = $TxDescricao;
    }

    public function getEnStatus() {
        return $this->EnStatus;
    }

    public function setEnStatus($EnStatus) {
        $this->EnStatus = $EnStatus;
    }

    public function equals(IObject $Plano) {
        return $this->IDPlano == $Plano->getIDPlano();
    }
}

?>
